home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 3.2 / Ham Radio Version 3.2 (Chestnut CD-ROMs)(1993).ISO / fax / wefax / magnify.bas < prev    next >
BASIC Source File  |  1985-08-28  |  7KB  |  142 lines

  1. 10 '-----------  REALTIME.BAS by E. W. Schwittek & W. G. Schwittek  -----------
  2. 20 '
  3. 30 '
  4. 40 '---------------------------  Initialization  -----------------------------
  5. 50 CLEAR ,20480
  6. 60 CLS:KEY OFF
  7. 70 DEFINT A-Z:H=20480:K=H/16
  8. 80 '
  9. 90 '------------------------  Select color adapter  --------------------------
  10. 100 DEF SEG=0
  11. 110 POKE &H410,(PEEK(&H410)AND &HCF)OR &H10
  12. 120 SCREEN 1,0,0,0:SCREEN 0
  13. 130 WIDTH 80:LOCATE ,,1,6,7:DEF SEG
  14. 140 '
  15. 150 '--------------------------  Introduction  -------------------------------
  16. 160 LOCATE 4,18:PRINT"REALTIME.BAS by E. W. Schwittek & W. G. Schwittek"
  17. 170 LOCATE 6,29:PRINT"Last revision - 06/26/84"
  18. 180 LOCATE 9,11:PRINT"This program  records and displays a four-color WEFAX picture"
  19. 190 PRINT TAB(11)"in real time. An RGB monitor is used in the medium-resolution"
  20. 200 PRINT TAB(11)"mode.  The program allows selection of background and palette"
  21. 210 PRINT TAB(11)"colors and  permits storage of  the picture on  disk or  hard"
  22. 220 PRINT TAB(11)"copy using the IBM or Epson dot matrix printer."
  23. 230 LOCATE 22,29,0:PRINT"Press any key to continue";
  24. 240 IF INKEY$=""GOTO 240
  25. 250 '
  26. 260 '----------------------------Main Menu  ---------------------------------
  27. 270 DEF SEG:SCREEN 0:WIDTH 80:CLS:LOCATE 3,5:PRINT"Menu:"
  28. 280 PRINT:PRINT TAB(10)"1) Choose colors":PRINT TAB(10)"2) Load saved views from disk"
  29. 290 PRINT TAB(10)"3) Record new data":PRINT:PRINT TAB(10)"q) Quit program"
  30. 300 LOCATE 14,5:PRINT"Selection: ";
  31. 310 S$=INKEY$:IF S$=""GOTO 310
  32. 320 IF S$="Q"OR S$="q"GOTO 990
  33. 330 S=VAL(S$):IF S<1 OR S>3 THEN SOUND 100,5:GOTO 310
  34. 340 LOCATE 14,16:PRINT S$
  35. 350 ON S GOTO 380,570,670
  36. 360 '
  37. 370 ' Selection #1 ---  Select background and palette color  -----------------
  38. 380 CLS:LOCATE 3,5:PRINT"Background color (0 to 15):":PRINT
  39. 390 PRINT TAB(10)"0: Black"TAB(25)"8: Gray"
  40. 400 PRINT TAB(10)"1: Blue"TAB(25)"9: Light Blue"
  41. 410 PRINT TAB(10)"2: Green"TAB(24)"10: Light Green"
  42. 420 PRINT TAB(10)"3: Cyan"TAB(24)"11: Light Cyan"
  43. 430 PRINT TAB(10)"4: Red"TAB(24)"12: Light Red"
  44. 440 PRINT TAB(10)"5: Magenta"TAB(24)"13: Light Magenta"
  45. 450 PRINT TAB(10)"6: Brown"TAB(24)"14: Yellow"
  46. 460 PRINT TAB(10)"7: White"TAB(24)"15: High Intensity White"
  47. 470 LOCATE 14,5:INPUT"Type background color selection (0 to 15) and press <ENTER>: ",BK$:BK=VAL(BK$)
  48. 480 IF BK<0 OR BK>15 THEN SOUND 100,5:LOCATE 14,5:PRINT SPACE$(74):GOTO 470
  49. 490 LOCATE 17,5:PRINT"Palette (0 or 1):":PRINT
  50. 500 PRINT TAB(10)"0: Green, Red, and Brown"
  51. 510 PRINT TAB(10)"1: Cyan, Magenta, and White"
  52. 520 LOCATE 22,5:INPUT"Type palette selection (0 or 1) and press <ENTER>: ",PA$:PA=VAL(PA$)
  53. 530 IF PA<0 OR PA>1 THEN SOUND 100,5:LOCATE 22,5:PRINT SPACE$(74):GOTO 520
  54. 540 GOTO 270
  55. 550 '
  56. 560 ' Selection #2  ------  BLOAD graphics screen  ---------------------------
  57. 570 CLS:LOCATE 10,5,1:PRINT"Load from which drive (A or B)";
  58. 580 D$=INKEY$:IF D$=""GOTO 580
  59. 590 IF D$<>"a"AND D$<>"A"AND D$<>"b"AND D$<>"B" THEN SOUND 100,5:GOTO 580
  60. 600 D$=D$+":":CLS:FILES D$+"*.vu"
  61. 610 PRINT:LOCATE ,20:INPUT"Filename to load (include extension): ",B$
  62. 620 B$=D$+B$:SCREEN 1,0:COLOR BK,PA
  63. 630 DEF SEG=&HB800:BLOAD B$,0
  64. 640 IF INKEY$="" GOTO 640 ELSE 270
  65. 650 '
  66. 660 ' Selection #3  -----------  Saving picture  -----------------------------
  67. 670 CLS:LOCATE 10,10:PRINT"Do you want to save the picture on disk (Y/N)? ";
  68. 680 A$=INKEY$:IF A$=""GOTO 680
  69. 690 IF A$="N"OR A$="n"GOTO 820
  70. 700 IF A$="Y"OR A$="y"GOTO 720
  71. 710 BEEP:GOTO 680
  72. 720 LOCATE 18,10:PRINT"Save on which drive (A or B)? ";
  73. 730 D$=INKEY$:IF D$=""GOTO 730
  74. 740 IF D$<>"a"AND D$<>"A"AND D$<>"b"AND D$<>"B" THEN SOUND 100,5:GOTO 720
  75. 750 LOCATE 18,40:PRINT D$
  76. 760 LOCATE 20,10:INPUT"Filename (8 char max/press <ENTER> to quit): ",B$
  77. 770 IF B$=""GOTO 670
  78. 780 IF LEN(B$)>8 THEN SOUND 100,5:LOCATE 20,5:PRINT SPACE$(34):GOTO 760
  79. 790 B$=D$+":"+B$+".VU"
  80. 800 '
  81. 810 '---------------------Load machine procedure------------------------------
  82. 820 RESTORE
  83. 830 FOR F=20480 TO 20719
  84. 840 READ G:POKE F,G
  85. 850 NEXT F
  86. 860 '
  87. 870 '----------------------  Call machine procedure  -------------------------
  88. 880 CLS:LOCATE 9,13:PRINT"Press ANY KEY to signify that you are ready for picture"
  89. 890 PRINT TAB(14)"recording to commence when the next sync pulse occurs."
  90. 900 IF INKEY$=""GOTO 900
  91. 910 CLS:SCREEN 1,0:COLOR BK,PA
  92. 920 CALL H(K)
  93. 930 '
  94. 940 '-----------------------  Save picture on disk  --------------------------
  95. 950 IF A$="Y"OR A$="y"THEN DEF SEG=&HB800:BSAVE B$,0,&H4000
  96. 960 IF INKEY$=""GOTO 960 ELSE 270
  97. 970 '
  98. 980 '---------------------------  Quit program  ------------------------------
  99. 990 CLS:LOCATE 20,10:PRINT"== Done ==":KEY ON:END
  100. 1000 '
  101. 1010 '-----------  Data checking program / N = 240 / SUM = 20324  -------------
  102. 1020 CLS:SUM=0:N=0
  103. 1030 READ D:IF D=-9999 THEN 1050
  104. 1040 N=N+1:SUM=SUM+D:GOTO 1030
  105. 1050 IF N<>240 THEN BEEP:LOCATE 10,10:PRINT"Number of data terms not correct.  Check data for errors.":END
  106. 1060 IF SUM<>20324 THEN BEEP:LOCATE 10,10:PRINT"Sum of data not correct.  Check data for errors.":END
  107. 1070 LOCATE 10,10:PRINT"Sum of data is correct.":END
  108. 1080 '
  109. 1090 '----------------  Data for machine language procedure  ------------------
  110. 1100 DATA &H55,&H8B,&HEC,&H06,&H16,&H1E,&H8B,&H76
  111. 1110 DATA &H06,&H8B,&H04,&H8B,&HF0,&H8C,&HC8,&H03
  112. 1120 DATA &HC6,&H05,&H0E,&H00,&H8E,&HD8,&HB8,&H00
  113. 1130 DATA &HB8,&H8E,&HC0,&H2B,&HC0,&H2B,&HFF,&HBB
  114. 1140 DATA &H00,&H00
  115. 1150 DATA &HB9,&HFF,&H00,&HBA,&H01,&H02,&HEC
  116. 1160 DATA &H3C,&H40,&H73,&HF8,&HE2,&HF6,&HBA,&H01
  117. 1170 DATA &H02,&HEC,&HD0,&HD0,&HD0,&H16,&H00,&H00
  118. 1180 DATA &HD0,&HD0,&HD0,&H16,&H00,&H00,&HB8,&H3C
  119. 1190 DATA &H00,&HA3,&H05,&H00,&HFF,&H0E,&H05,&H00
  120. 1200 DATA &H75,&HFA,&HFE,&H0E,&H02,&H00,&H75,&H08
  121. 1210 DATA &HC6,&H06,&H02,&H00,&H04,&HEB,&H0F,&H90
  122. 1220 DATA &HFF,&H0E,&H09,&H00,&H75,&HFA,&HC7,&H06
  123. 1230 DATA &H09,&H00,&H01,&H00,&HEB,&HC8,&HA0,&H00
  124. 1240 DATA &H00,&H26,&H88,&H01,&H47,&HFE,&H0E,&H03
  125. 1250 DATA &H00,&HC6,&H06,&H00,&H00,&H00,&H75,&HB6
  126. 1260 DATA &HC6,&H06,&H03,&H00,&H50,&H80,&H2E,&H01
  127. 1270 DATA &H00,&H00,&H75,&H0D,&HBB,&H00,&H20,&HFE
  128. 1280 DATA &H06,&H01,&H00,&H83,&HEF,&H50,&HEB,&H0E
  129. 1290 DATA &H90,&HBB,&H00,&H00,&HFE,&H0E,&H01,&H00
  130. 1300 DATA &H83,&HC7,&H00,&HEB,&H01,&H90,&HB8,&H32
  131. 1310 DATA &H3C,&HA3,&H07,&H00,&HFF,&H0E,&H07,&H00
  132. 1320 DATA &H75,&HFA,&HA3,&H07,&H00,&HFF,&H0E,&H07
  133. 1330 DATA &H00,&H75,&HFA,&HA3,&H07,&H00,&HFF,&H0E
  134. 1340 DATA &H07,&H00,&H75,&HFA,&HA3,&H07,&H00,&HFF
  135. 1350 DATA &H0E,&H07,&H00,&H75,&HFA,&HFE,&H0E,&H04
  136. 1360 DATA &H00,&H74,&H03,&HE9,&H60,&HFF,&H1F,&H17
  137. 1370 DATA &H07,&H8B,&HE5,&H5D,&HCA,&H02,&H00,&H00
  138. 1380 DATA &H00,&H00,&H00,&H00,&H00,&H00,&H00
  139. 1390 DATA &H00,&H00,&H04,&H50,&HC8,&H00,&H00,&H00
  140. 1400 DATA &H00,&H01,&H00,&H00,&H00,&H00,&H00,&H00
  141. 1410 DATA-9999
  142.